/*
  This file is part of bnc.

  bnc is free software: you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation, either version 3 of the License, or
  (at your option) any later version.

  bnc is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with bnc.  If not, see <http://www.gnu.org/licenses/>.
*/
#include <stdio.h>
#include <string.h>
#include "./compressor.h"
#include "./cryptor.h"

#define BUFFERSIZELARGE 16777216
#define BUFFERSIZESMALL 524288

typedef struct
{
  compressor* pCompressor;
  cryptor* pCryptor;
  FILE* pFile;
  char* pBufferI;
  char* pBufferO;
  char* pTemporaryDirectory;
  unsigned char* pHeader;
} manager;

void managerConstructor (manager* aManager);
char* managerPreCompress (manager* aManager, char* aInputName);
char managerCreateBnc (manager* aManager, char* aBnc);
char managerBuildHeader (manager* aManager, unsigned int aCount, char** aInput);
char managerInsertFiles (manager* aManager, unsigned int aCount, char** aInput);
char managerOpenBnc (manager* aManager, char* aInput);
char managerListFiles (manager* aManager);
char managerExtractFiles (manager* aManager, unsigned int aCount, char** aFiles);
void managerDestructor (manager* aManager);
